/**
 * Project Name:AlipayTradeReqParams.java
 * File Name:AlipayTradeReqParams.java
 * Date:2018/7/27 下午1:24
 * Copyright (c) ${year}, zhang.xiangyu@foxmail.com All Rights Reserved.
*/
package com.meatball.utils.pay.params;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.util.List;

/**
 * @Title: AlipayTradeReqParams.java
 * @Description: todo(支付宝支付请求参数)
 * @Author 張翔宇
 * @Date 2018/7/27 下午1:24
 * @Version V1.0
 */
@Data
public class AlipayTradeReqParams {
    /**
     * 商户订单号,64个字符以内、只能包含字母、数字、下划线；需保证在商户端不重复
     */
    @JSONField(name = "out_trade_no")
    private String outTradeNo;

    /**
     * 卖家支付宝用户ID。 如果该值为空，则默认为商户签约账号对应的支付宝用户ID
     */
    @JSONField(name = "seller_id")
    private String sellerId;

    /**
     * 订单总金额，单位为元，精确到小数点后两位，取值范围[0.01,100000000] 如果同时传入了【打折金额】，【不可打折金额】，
     * 【订单总金额】三者，则必须满足如下条件：【订单总金额】=【打折金额】+【不可打折金额】
     */
    @JSONField(name = "total_amount")
    private Double totalAmount;

    /**
     * 可打折金额. 参与优惠计算的金额，单位为元，精确到小数点后两位，取值范围[0.01,100000000] 如果该值未传入，
     * 但传入了【订单总金额】，【不可打折金额】则该值默认为【订单总金额】-【不可打折金额】
     */
    @JSONField(name = "discountable_amount")
    private Double discountableAmount;

    /**
     * 订单标题
     */
    private String subject;

    private List<GoodsDetail> goodsDetails;

    public static void main(String[] args) {
        AlipayTradeReqParams alipayTradeReqParams = new AlipayTradeReqParams();
        alipayTradeReqParams.setOutTradeNo("12312313");

        System.out.println(JSON.toJSON(alipayTradeReqParams));
    }
}
